package com.ft.springboottravel.config;


import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyMvcConfig implements WebMvcConfigurer {

    //Springboot添加静态资源映射
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            //registry.addResourceHandler("/picture/**")
            // 表示访问路径，这里的意思是所有/picture/开头的请求 都会去后面配置的路径下查找资源
            registry.addResourceHandler("/webjars/**")
                    .addResourceLocations("classpath:/META-INF/resources/webjars/");
            registry.addResourceHandler("/uploads/**").addResourceLocations("file:/E:/uploads/");
        }

        /**
         * 当项目中涉及大量的页面跳转，我们可以使用addViewControllers方法实现无业务逻辑跳转，从而减少控制器代码的编写。
         addViewControllers方法可以实现将一个请求直接映射为视图，不需要编写控制器来实现，从而简化了页面跳转。
         */
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            //浏览器发送 /hello 请求，来到 success文件
            registry.addViewController("/login").setViewName("login");
        }

        //配置拦截器
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
//            registry.addInterceptor(new LoginInterceptor())
//                    .addPathPatterns("/**")
//                    .excludePathPatterns("/login","/dologin","/webjars/**");
        }
}
